/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package ReglasNegocio;
import AccesoDatos.*;
/**
 *
 * @author dani
 * @modificadopor ramayac
 */
public class Actividad extends ObjReglaNegocioBase {
    
    private String id;
    private String nombre;
    private String descripcion;
    private String tipo; //Cortador o Podador
    
    public Actividad(Dato id) {
        super(id);
        this.id=this.campo.get(0).getValor();
    }
    
    public String toString() {
        return this.nombre;
    }
    
    public Actividad() {
        super();
    }
    
    public String getId() {
        return id;
    }

    public void setId(String id) {
        this.id = id;
    }
    
    public String getNombre() {
        return this.nombre;
    }
    
    public void setNombre(String nombre) {
        this.nombre=nombre;
    }
    
    public String getDescripcion() {
        return this.descripcion;
    }
    
    public void setDescripcion(String descripcion) {
        this.descripcion=descripcion;
    }
    
    public String getTipo(){
        return this.tipo;
    }
    
    public void setTipo(String tipo){
        //TODO: Valido la letra? {C,P}
        this.tipo = tipo.substring(0, 1); //para el VARCHAR(1);
    }
    
    @Override
    protected Boolean asignarCampos() {
        String sql="select * from actividad";
        sql+=" where "+this.campo.get(0).getNombre()+"=";
        sql+="'"+this.campo.get(0).getValor()+"'";
        
        Vista v=this.conn.crearVista(sql);
        if (v.getNRegistros()>0) {
            this.nombre=(String) v.getRegistro(0, 1);
            this.descripcion=(String) v.getRegistro(0, 2);
            this.tipo=(String)v.getRegistro(0, 3);
            return true;            
        }
        else
            return false;
    }
    
    
    @Override
    public int Crear() {
        Dato[] datos=new Dato[3];
        datos[0]=new Dato("nombre",this.nombre);
        datos[1]=new Dato("descripcion", this.descripcion);
        datos[2]=new Dato("tipo",this.tipo);
        //datos[2]=new Dato("fkfinca", this.finca.getIdentificador().getValor());
        
        return this.conn.Agregar(datos, this.getNombreObjeto().toLowerCase());
    }
    
    @Override
    public void Actualizar() {
        String sql="update "+this.getNombreObjeto().toLowerCase();
        sql+=" set ";
        sql+="nombre='"+this.nombre+"',";
        sql+="descripcion='"+this.descripcion+"',";         
        sql+="tipo='"+this.tipo+"' ";         
        sql+="where "+this.getIdentificador().getNombre()+"=";
        sql+="'"+this.getIdentificador().getValor()+"'";
        
        this.conn.ejecutarActualizacion(sql);
        this.asignarCampos();
    }
}
